package com.bz.util;

import java.util.UUID;

/**
 * UUID工具
 *
 * @author vip
 * @date 2019/12/03 16:12
 */
public class UuidUtils {

    /**
     * 得到32位的uuid
     *
     * @return
     */
    public static String uuid() {
        return UUID.randomUUID().toString().replaceAll("-", "");
    }

    public static int safeLongToInt(long value) {
        if (value < Integer.MIN_VALUE || value > Integer.MAX_VALUE) {
            throw new IllegalArgumentException("Long value " + value + " is out of range for an int");
        }
        return (int) value;
    }


    /**
     * 计算分页的页码，确保输入的 endPage 和 listNum 在合理的范围内。
     *
     * @param endPage 最后一页的页码
     * @param listNum 每页的记录数
     * @return 计算得到的页码
     * @throws IllegalArgumentException 如果 endPage 或 listNum 为负数，或者 listNum 为零
     */
    public static int safeLongToPage(long endPage, long listNum) {
        if (endPage < 0) {
            throw new IllegalArgumentException("endPage must be non-negative");
        }
        if (listNum <= 0) {
            throw new IllegalArgumentException("listNum must be positive");
        }

        // 计算总页码
        int totalPages = (int) (endPage / listNum);
        if (endPage % listNum != 0) {
            totalPages++;
        }
        if (totalPages > 0) {
            totalPages--;
        }
        return totalPages;
    }

}
